package AStar {
	/*
	
	A*寻路算法，只是保证在低消耗的情况在最短的时间找出路径，
	但A*寻路算法寻出来的路不一定是最近，但也绝对不会远的离谱，
	可也不排除你对路径评分算法的优化可以做到最快最短最低消耗，
	或者对最终路径的优化来达到目的，下面就来讲讲通用的路径评分计算公式：
　
　　首先看公式：　F = G + H
　
　　F值表示路径评分，G值表示当前所判断的标记离开始标记的路径耗费，
	H值表示当前所判断的标记离目标方格的路径估值耗费G值的计算方式是，
	如果为斜走判断则用父标记的G值加上14表示当前标记的G值，
	如果为直走判断则用父标记的G值加上10表示当前标记G值H值通常的计算方式是一种称作为曼哈顿方法的方式，
	当前标记离目标方格横着的方格数加上竖着的方格数，然后乘以10，最后得值就是H值。
	当然若你想通过A*寻出最好的路径，那么改善算法的主要地方就是这个H值的算法
	
	*/
	public class Mark{
		private var _pare:Mark;
		private var _g:int = 0;
		private var _h:int = 0;
		private var _f:int = 0;
		private var _posX:int = 0;
		private var _posY:int = 0;
		
		public function Mark(posX:int, posY:int, pare:Mark,currentG:int,currentH:int) {
			_pare = pare;
			_posX = posX;
			_posY = posY;
			if (pare != null) {
				_h = currentH;
				_g = pare.g + currentG;
				_f = _g + _h;
			}
		}
		
		public function get point():Object {
			return {x:_posX, y:_posY};
		}
		
		public function get posX():int {
			return _posX;
		}
		
		public function get posY():int {
			return _posY;
		}
		
		public function get pMark():Mark {
			return _pare;
		}
		
		public function get f():int {
			return _f;
		}
		public function get g():int {
			return _g;
		}
		public function get h():int {
			return _h;
		}
		
	}
}